#include <Servo.h>
Servo myservo; // Creo l'oggetto servo per sfruttare le proprietà della classe servo
Servo myservo1;
int i=0;
int Switch = 0;
int val; // Variabile che memorizza il valore letto
int velo;
int myArray [99]; // Crea array di 100 elementi, poi si varia
void setup ()
{

 pinMode (2, OUTPUT); // Led Verde: Fase di apprendimento
 pinMode (3, OUTPUT); // Led Rosso: Esecuzione automatica
 pinMode (4, OUTPUT) ;// Buzzer
 // pinMode (10, OUTPUT) ;// Motori
 

 Serial.begin(9600);
 myservo. attach(9); // Pin di Arduino dove è attaccato il servo
 //myservo1.attach(10); // Servo ruota motrice
}
void loop ()
{
// ------------------ Generazione del beep e led lampeggiante ------------------------------------------
 for (i = 0; i < 2; i = i + 1)
 {
 tone(4,500);digitalWrite (2,HIGH);digitalWrite (3,HIGH);
 delay (500);
 tone(4,400);digitalWrite (2,LOW);digitalWrite (3,LOW);
 delay (500);
 }
 noTone(4);
// ----------------- Acquisisce il valore analogico dal pin A0 e lo trasferisce al servo --------
 for (i = 0; i < 99; i = i + 1)
 {
 digitalWrite (2, HIGH);
 val = analogRead(A0); // Volante
 // velo = analogRead(A1); //Potenziometro velocità
 myservo.write(val/6); // 1024/6 fa circa 180 che per il servo è una rotazione massima verso sinistra. La
posizione centrale del volante determina un val/6 di circa 90 che per il servo è una rotazione centrale. Con il
volante a destra si ha un val/6 pari a zero che per il servo corrisponde ad una rotazione massima verso
destra.

 // myservo1.write(10+velo);
 myArray[i]= val/6;
 Serial.println(val/6);

 // Serial.print(velo);
 // Serial.print(" ");
 //Serial.println(i);
 delay (200);


 }
 digitalWrite (2,LOW);

// ------------- Riproduce i valori acquisiti dall'Array e li trasferisce al servo ------------------------

 for (i = 0; i < 99; i = i + 1)
 {
 digitalWrite (3,HIGH);
 myservo.write(myArray[i]);


 Serial.print(myArray[i]);
 Serial.print(" ");
 Serial.println(i);
 delay(200);

 }
 digitalWrite (3,LOW);
}